2.4 Mise en pratique : les piles

Exercice 1
crire un programme qui affiche une liste chane simple  l'envers en utilisant une pile.

Exercice 2
Donner le contenu de la pile pour chaque opration de la suite :
Q*UES***TI*ON*FAC***IL***E**.
Chaque lettre provoque un empilement et chaque astrisque un dpilement.
Faire de mme avec la suite : EAS*Y*QUE***ST***IO*N***.

Exercice 3
Un fichier texte peut contenir des parenthses( ), des crochets [ ] et des accolades { }. Ces l-ments peuvent tre imbriqus les uns dans les autres, par exemple : { a(bc[d])[{ef}(g)]}. crire une fonction qui parcourt le fichier texte et dtermine si le fichier est correctement structur.  savoir, parenthses, crochets et accolades doivent tre correctement referms et imbriqus. Par exemple ({]}) et ({)} ne sont pas corrects.

Exercice 4
crire un programme qui,  laide dune pile, value lexpression arithmtique postfixe :
5 11 9 + 2 12 * - 8 / *.
Puis  laide dune autre pile, transformer lexpression postfixe en son expression in-fixe (oprateur entre 2 oprandes le tout entre parenthses).

Exercice 5
Les internautes utilisent un logiciel pour naviguer sur Internet. Parmi ces fonctions il y a celle qui permet de revenir sur une page dj accde via son adresse URL (http://www...). Cette fonction est active  l'aide de l'icne reprsentant la flche. Pour raliser cette fonctionnalit, le navigateur conserve un historique des adresses URL de chaque page accde de faon  pouvoir y accder de nouveau au besoin. Les adresses des pages sont mmorises selon l'ordre d'accs du plus rcent au moins rcent. Aprs un certain temps, cet historique peut contenir la mme page plus d'une fois. On souhaite pouvoir viter les doublons : ne garder en mmoire quune seule version URL de chaque page multiple, ceci tout en prservant lordre daccs du plus rcent au moins rcent.
Programmer une simulation.
1) Quelle structure de donnes envisager ?
2) Tester avec un programme qui initialise un historique dadresses URL contenant des dou-blons.
3) Comment viter les doublons dans l'historique ? Quelle solution pour rfrencer toutes les pages, y compris multiples, sans garder leur adresse URL en doublon ?

Exercice 6
Soient trois piles P1, P2 et P3 pouvant contenir un nombre illimit dobjets.
Au dbut, des objets de tailles diffrentes peuvent tre empils de manire dsordonne dans la premire pile P1. Cette pile nest soumise  aucune contrainte : un objet plus grand peut donc tre empil sur un plus petit. Nous supposerons donc que lappel  la procdure Empile-rEnVrac(P1) empile de manire dsordonne plusieurs objets dans la pile P1.
On souhaite trier ces objets par taille dans la seconde pile P2, soumise quant  elle  la con-trainte suivante : un objet plus petit ne peut tre empil que sur un objet plus grand. Pour cela, on dpile les objets de la premire pile P1 un par un, et on les empile dans la seconde pile P2 en respectant cette contrainte dordre dempilement.
Si la taille de lobjet en sommet de P1 est plus grande que celle en sommet de P2, la troisime pile P3 intermdiaire savre indispensable. Tout comme P1, cette troisime pile P3 nest sou-mise  aucune contrainte dordre dempilement.
 
crire un programme de simulation pour n objets entrs par l'utilisateur.
